/**
 * 函数辅助工具
 */

/**
 * 防抖函数
 * @param {Function} func - 函数
 * @param {number} delay - 延迟
 * @returns {Function}
 */
export function debounce(func, delay = 300) {
  let timeoutId
  return function (...args) {
    clearTimeout(timeoutId)
    timeoutId = setTimeout(() => func.apply(this, args), delay)
  }
}

/**
 * 节流函数
 * @param {Function} func - 函数
 * @param {number} delay - 延迟
 * @returns {Function}
 */
export function throttle(func, delay = 300) {
  let lastCall = 0
  return function (...args) {
    const now = Date.now()
    if (now - lastCall >= delay) {
      lastCall = now
      return func.apply(this, args)
    }
  }
}
